/*
 * Copyright (c) 2011-2014, fortiss GmbH.
 * Licensed under the Apache License, Version 2.0.
 *
 * Use, modification and distribution are subject to the terms specified
 * in the accompanying license file LICENSE.txt located at the root directory
 * of this software distribution. A copy is available at
 * http://chromosome.fortiss.org/.
 *
 * This file is part of CHROMOSOME.
 *
 * $Id$
 */

/**
 * \file
 *         Topic registry extension.
 *         Project specific topic data structures are defined here.
 *
 * \author
 *         This file has been generated by the CHROMOSOME Modeling Tool (XMT)
 *         (fortiss GmbH).
 */

#ifndef AUTOPNP_AUTOPNPCOMMON_TOPICDATA_H
#define AUTOPNP_AUTOPNPCOMMON_TOPICDATA_H

/******************************************************************************/
/***   Includes                                                             ***/
/******************************************************************************/
#include <stdint.h>

/******************************************************************************/
/***   Type definitions                                                     ***/
/******************************************************************************/
/**
 * \typedef AutoPnP_componentName_t
 */
typedef char AutoPnP_componentName_t[50];

/**
 * \typedef AutoPnP_capability_t
 */
typedef char AutoPnP_capability_t[50];

/**
 * \typedef AutoPnP_topic_remove_component_t
 *
 * \brief Data type for topic 'remove_component' (identifier: AUTOPNP_TOPIC_REMOVE_COMPONENT).
 */
#pragma pack(push, 1)
typedef struct
{
    AutoPnP_componentName_t name;
} AutoPnP_topic_remove_component_t;
#pragma pack(pop)

/**
 * \typedef AutoPnP_component_t
 */
#pragma pack(push, 1)
typedef struct
{
    AutoPnP_componentName_t name;
    AutoPnP_componentName_t parent;
    AutoPnP_capability_t capabilities[10];
    uint8_t capabilitiesCount;
} AutoPnP_component_t;
#pragma pack(pop)

/**
 * \typedef AutoPnP_topic_add_component_t
 *
 * \brief Data type for topic 'add_component' (identifier: AUTOPNP_TOPIC_ADD_COMPONENT).
 */
#pragma pack(push, 1)
typedef AutoPnP_component_t AutoPnP_topic_add_component_t;
#pragma pack(pop)
#endif // #ifndef AUTOPNP_AUTOPNPCOMMON_TOPICDATA_H
